2.01. Linux
Linux
★ Linux – семейство открытых ОС, основанных на ядре Linux (Linux kernel), созданном Линусом Торвальдсом в 1991 году. В отличие от Windows и macOS, Linux не принадлежит одной компании. Это проект с открытым исходным кодом, который развивается сообществом разработчиков по всему миру. Само ядро Linux – лишь часть ОС, а полноценная система включает в себя множество программ из проектов GNU, X Window System, драйверов, утилит и т.д.
1. Как устроен Linux?
Архитектура Linux включает в себя следующие компоненты:
- Ядро (Kernel) – управляет взаимодействием с оборудованием;
- Оболочка (Shell) – интерфейс командной строки;
- Утилиты GNU – стандартные инструменты работы с системой;
- Файловая система – структура хранения данных;
- Менеджер окон / DE (Desktop Environment) – графическая оболочка;
- Пакетный менеджер – установка и удаление ПО;
- Службы (system, init) – запуск и управление процессами.
Первое, что заметит пользователь Windows – обилие команд через CLI, а также крайне большое сокращение всего, что можно. Если Windows рассчитана на простых пользователей, в том числе офисных, которым проще пояснить полное название, с подсказками и подробностями, а также на родном языке, в графическом интерфейсе, то в Linux расчёт идёт на простоту и удобство для разработчиков.
А разработчики люди другие – им важно, чтобы пришлось «писать меньше букв», они работают по-другому. Поэтому, в Linux, даже открыв файловую систему, можно увидеть, что все стандартные директории называются кратко вроде «root», «home». Никаких длинных путей, всё просто и быстро. Аналогично и работа с программами – чтобы что-то скачать и установить, порой не придётся идти на сайт дистрибутива и долго мучаться с пользовательским интерфейсом. Разработчики привыкли к коду, поэтому им проще найти гайд, вбить нужную команду в консоль и всё установится автоматически. А в использовании, проще опять же – вбить команду в консоль и выполнять, чем сидеть и настраивать кнопочки, галочки и прочие элементы в интерфейсе.

Компоненты
1. Ядро
★ Ядро Linux – сердце системы. Отвечает за управление процессором (планировщик задач), управление памятью, работу с дисками и файловыми системами, сетевые подключения, драйверы устройств, безопасность. Выпускается регулярно, каждые 2-3 месяца. Существуют, конечно, и долгосрочные версии (LTS, Long Term Support) – поддерживаются 2-4 года.
2. Дистрибутивы
★ Linux – не одна ОС, а семейство ОС, называемых дистрибутивами (distributions). Они различаются по цели использования, простоте, стабильности и другим параметрам.
Классификация дистрибутивов.
По типу пакетного менеджера:
- Debian / Ubuntu - .deb, apt;
- Red Hat / CentOS / Fedora - .rpm, dnf / yum;
- Arch Linux – pacman;
- SUSE / openSUSE – zipper.
По назначению:
- для начинающих: Ubuntu, Linux Mint, Elementary OS;
- для серверов: CentOS, RHEL, Debian;
- для разработчиков: Arch Linux, Fedora Workstation;
- Live-CD дистрибутивы: Kali Linux (безопасность), Tails (анонимность), Knoppix.
Говоря о дистрибутивах, их просто великое множество - всё из-за открытости ОС. Есть и общепринятые качественные оболочки, есть и простые, а можно встретить всякое - ОС с жесточайшим контролем, используемые в определённых странах (допустим, Северная Корея), оболочки в стиле аниме, различных звёзд. Есть игровые вроде SteamOS, есть и безумные - к примеру, Suicide Linux удаляет все файлы при любой ошибке в терминале.
3. Среда и ключевое ПО
★ Среда и ключевое ПО, службы.
Графическая среда (DE):
- GNOME – современный, официальный для Fedora, Ubuntu;
- KDE Plasma – мощный, гибкий, красивый;
- XFCE – легковесный, подходит для старых машин;
- LXQt / MATE / Cinnamon – альтернативы.
Графическую среду можно установить отдельно, через командную строку.
Службы (services). Linux использует:
- systemd – современная система инициализации и управления службами;
- init – старая система (SysVinit).
Зачем это всё нужно? И почему мы снова перешли в перечисления? Что за странные названия и сокращения?
Смысл в том, что Linux, в отличие от Windows, не ограничена правами одной корпорации, а развивается целым сообществом разработчиков. Каждый делает что-то, изобретает инструменты, делится с другими, и совместными усилиями «рождаются» новые службы, оболочки, утилиты. А ядро Linux и система пакетов позволяет просто взять и поставить себе любой из них, собрав из всех компонентов своего «монстра Франкенштейна».
4. Инструменты
★ Полезные инструменты в Linux
- top / htop – мониторинг процессов;
- df / du – информация о дисковом пространстве;
- ls / cp / mv / rm – работа с файлами;
- grep / sed / awk – обработка текста;
- find – поиск файлов;
- chmod / chown – управление правами доступа;
- tar / zip / gzip – архивирование;
- curl / wget – загрузка данных из интернета;
- ssh / scp / rsync – удалённый доступ и копирование;
- nmcli / ip / ifconfig – сетевые настройки;
- apt / dnf / pacman – пакетные менеджеры.
5. Сеть
★ Работа с сетью.
Управление сетью выполняется через:
- NetworkManager – графический менеджер подключений;
- system-networkd – для серверов;
- nmcli – CLI для NetworkManager.
Примеры работы с сетью:
ip a # информация о IP-адресах
ping google.com # проверка связи
traceroute google.com # маршрут до сервера
netstat -tuln # активные порты
ss -tuln # более быстрая замена netstat
nmap -p 1-1000 192.168.1.1 # сканирование портов
dig example.com # DNS-запросы
Далее, в главе, посвящённой системному администрированию, мы ещё погрузимся в Linux. На текущий момент продолжим изучение других ОС.